const { result } = require('lodash')
const store = require('./store')

module.exports = (app) => {
  const { Schema, createModel, getModelName, formatDate, pre } = app.jax.mongoose
  const modelName = getModelName(__filename)

  const modelSchema = new Schema({
    activityId: Schema.Types.ObjectId, // 活动ID
    activityNo: String, // 活动编号
    storeName: String, // 门店名称

    activityDate: { type: Date, get: (date) => formatDate(date, 'YYYY-MM-DD') }, // 活动日期
    startTime: { type: Date, get: (date) => formatDate(date) }, // 活动开始时间
    endTime: { type: Date, get: (date) => formatDate(date) }, // 活动结束时间

    storeId: Schema.Types.ObjectId, // 门店ID
    storeName: String, // 门店名称

    userId: Schema.Types.ObjectId, // 用户ID
    name: String, // 用户姓名
    mobile: String, // 用户手机号

    adminId: Schema.Types.ObjectId, // 鉴定师
    status: { type: Number, default: 0 }, // 预约状态（0：待审核、1：已完成、2：待核销 3：已拒绝、4：已核销、5：已取消）

    name: String, // 姓名
    mobile: String, // 手机号
    sex: String, // 性别
    role: String, // 身份

    remark: String, // 用户备注

    verifyStatus: { type: Number, default: 0 }, // 是否核销 0、待核销 1、已核销
    verifyUserId: Schema.Types.ObjectId, // 核销人ID
    verifyUserName: String, // 核销人姓名
    verifyTime: { type: Date, get: (date) => formatDate(date) }, // 核销时间

    // 商品信息
    goods: [
      {
        goodsName: String, // 商品名称
        goodsNum: Number, // 商品数量
        channel: String, // 购买渠道
        goodsImages: [String], // 商品图片
      },
    ],

    // 鉴定结果
    verifyResult: {
      goodsDesc: String, // 商品说明
      goodsImages: [String], // 商品图片
      goodsPrice: Number, // 商品价格

      produceDateImages: [String], // 生产批号/日期
      boxImages: [String], // 箱码或24位物流码

      result: String, // / 鉴定结果（0：商品正品 1：疑似假冒  ）

      remark: String, // 备注
    },

    // 评论
    comment: {
      score: String, // 评分（优秀、良好、一般）
      content: String, // 评论内容
      images: [String], // 评论图片
    },

    // 审核说明
    auditStatus: Number, // 鉴定结果
    auditRemark: String, // 审核备注
  })

  const Model = createModel(modelName, modelSchema)

  return Model
}
